CASSANDRA-21433: OpenTelemetry tracing initial implementation#4872
CASSANDRA-21433: OpenTelemetry tracing initial implementation#4872yukim wants to merge 1 commit into
Conversation
| # If enabled, Cassandra can export telemetry using OpenTelemetry. | ||
| # Currently, only tracing is exported | ||
| # Default: false | ||
| opentelemetry_enabled: false |
There was a problem hiding this comment.
move up to start section of EXPERIMENTAL FEATURES
| # If enabled, Cassandra can export telemetry using OpenTelemetry. | ||
| # Currently, only tracing is exported | ||
| # Default: false | ||
| opentelemetry_enabled: false |
There was a problem hiding this comment.
move up to start section of EXPERIMENTAL FEATURES
| if (Span.current().getSpanContext().isValid()) | ||
| { | ||
| String target = cm.getPartitionUpdates().stream() | ||
| .map((pu) -> pu.metadata().toString()).collect(Collectors.joining(" ")); |
There was a problem hiding this comment.
performance ? (on all usages of .stream())
|
question on package naming. it doesn't look like we'll use otel for metrics or logs, just for tracing. if that's a safe presumption it would make more sense to put classes into the existing .tracing package rather than create a new top-level package .telemetry question on statement values. are we sure we are redacting all cql values ? |
| return; | ||
|
|
||
| state.trace(message); | ||
| } |
There was a problem hiding this comment.
so if IIUC…
we can have otel and internal-tracing off, we can have just otel, or just internal-tracing, or we have have both on. and these states don't impact the other…
while the CEP has stated replacing internal-tracing as a non-goal, i am interested in vague sketching of how we could eventually do that. the only functionality needed to carry forward is the tracing on; output in cqlsh (any notion of sampling and querying system_traces is redundant if otel is being used). then cqlsh tracing would ideally be done in-memory only (flushing system_traces is waste).
This is the implementation of CEP-32: OpenTelemetry tracing integration.
Review points
CQLStatement#getQuerySummary()result. For example,QUERY SELECT ks.table.MUTATION_REQ ks.table